﻿using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using DevExpress.XtraEditors;

namespace IT_Pro.Forms
{
    public partial class frmNVQuanLyNhanVien : DevExpress.XtraEditors.XtraForm
    {
        public frmNVQuanLyNhanVien()
        {
            InitializeComponent();
        }

        private void LoadDSPhongvaoCBO()
        {
            DataTable dt = Class.NV_PhongBan.HienThiDsPhong();
            dt.Rows.InsertAt(dt.NewRow(),0);          
            dt.Rows[0]["MaPhong"] = 0;
            dt.Rows[0][1] = "Tất cả";
            cboPhongBan.Properties.DataSource = dt;              
            cboPhongBan.Properties.ValueMember = "MaPhong";
            cboPhongBan.Properties.DisplayMember = "TenPhong";
            cboPhongBan.EditValue = 0;
        }

        private void frmNVQuanLyNhanVien_Load(object sender, EventArgs e)
        {
            LoadDSPhongvaoCBO();
        }

        private  void LoadDsNhanVien(string keySearch, string fill, int searchMode)
        {
            gridNhanVien.DataSource = Class.NV_NhanVien.HienThiDsNhanVienSearch(keySearch, fill, searchMode);
        }
        public void btnXemNVTheoPhong_Click(object sender, EventArgs e)
        {

            if (cboPhongBan.EditValue.ToString()!= "0")
            {
                LoadDsNhanVien(cboPhongBan.EditValue.ToString(), "PHG", 1);
            }
            else
            {
                LoadDsNhanVien(cboPhongBan.EditValue.ToString(), "PHG", 2);
            }
           
        }

        private void btnXoaNV_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {   
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();

                DialogResult dr = MessageBox.Show(" Bạn có chắc muốn xóa nhân viên: " + _value + "-" + _name + " ?", "Thong bao ", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.Yes)
                {                    
                    try
                    {
                        if (Class.NV_NhanVien.XoaNhanVien(_value))
                        {
                            MessageBox.Show("Xóa Thành Công!");
                            
                                btnXemNVTheoPhong_Click(null, null);
                            
                        }else{
                            MessageBox.Show("Có lỗi trong quá trình xóa");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Lỗi : " + ex.Message);
                    }
                }
            }
            else
            {
                MessageBox.Show("Bạn Chưa chọn Nhân Viên !!!");
            }
        }

        private void btnNghiViec_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();
                string _trangthai = drow["TrangThai"].ToString();
                string mssh ="";
                if (_trangthai == "True")
                {
                    mssh = "sang chế độ nghỉ việc";
                    _trangthai = "False";
                }
                else
                {
                    mssh = "sang chế độ làm việc";
                    _trangthai = "True";
                }

                DialogResult dr = MessageBox.Show(" Bạn có chắc muốn Chuyển nhân viên: " + _value + "-" + _name + " " + mssh + " ?", "Thong bao ", MessageBoxButtons.YesNo, MessageBoxIcon.Question);
                if (dr == DialogResult.Yes)
                {
                    // kiem tra đã bàn giao chua
                    if (_trangthai == "False")
                    {
                        if (!Class.NV_NhanVien.kiemtraNhanvienchuabangiaomay(_value))
                        {
                            MessageBox.Show("Nhân viên này chưa thực hiện bàn giao máy tính, nên chưa thực hiện được chức năng nghỉ việc ");
                            return;
                        }
                    }

                    try
                    {
                        if (Class.NV_NhanVien.ChuyenTrangThaiNhanVien(_value,_trangthai))
                        {
                            MessageBox.Show("Chuyển Thành Công!");                           
                                btnXemNVTheoPhong_Click(null, null);
                           
                        }
                        else
                        {
                            MessageBox.Show("Có lỗi trong quá trình chuyển");
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show("Lỗi : " + ex.Message);
                    }
                }
            }
            else
            {
                MessageBox.Show("Bạn Chưa chọn Nhân Viên !!!");
            }
        }

        private void gridDanhSachNhanVien_Click(object sender, EventArgs e)
        {
             int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
             if (SelectedRow >= 0)
             {
                 DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                 string _trangthai = drow["TrangThai"].ToString();
                 if (_trangthai == "True")
                 {
                     btnNghiViec.Text = "F3-Nghỉ việc";
                 }
                 else
                 {
                     btnNghiViec.Text = "F3-Phục hồi";
                 }
             }
        }

        private void btnThuyenChuyen_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();
                string _phong = drow["TenPhong"].ToString();
                Forms.frmNVChuyenNhanVien frm = new Forms.frmNVChuyenNhanVien(_value, _name, _phong);
                frm.ShowDialog();
                if (frm.thuchien == 1)
                {
                    btnXemNVTheoPhong_Click(null, null);
                }
            }
        }

        private void gridDanhSachNhanVien_DoubleClick(object sender, EventArgs e)
        {
             int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
             if (SelectedRow >= 0)
             {
                 DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                 string _value = drow["MaNV"].ToString();
                 string _name = drow["TenNV"].ToString();
                 Forms.frmNVChiTietNhanVien frm = new Forms.frmNVChiTietNhanVien(_value,_name);
                 frm.Owner = this;
                 frm.ShowDialog();
                 if (frm.thuchien == 1)
                 {
                     btnXemNVTheoPhong_Click(null, null);
                 }
             }
        }

        private void btnCapCodeDienThoai_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                 string _name = drow["TenNV"].ToString();
                 string _trangThai = drow["TrangThai"].ToString();
                 string _mail = drow["Mail"].ToString();
                 if (_trangThai == "True")
                 {
                     Forms.frmNVCapCodeDienThoai frm = new frmNVCapCodeDienThoai(_value, _name, _mail);
                     frm.ShowDialog();
                 }
                 else
                 {
                     MessageBox.Show("Nhân viên này đã nghỉ việc. bạn không thể thực hiện cấp code cho nhân viên này");
                 }
            }
        }

        private void btnChinhSachHeThong_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();
                string _trangThai = drow["TrangThai"].ToString();
                if (_trangThai == "True")
                {
                    Forms.frmNVChinhSachHeThong frm = new frmNVChinhSachHeThong(_value, _name);
                    frm.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Nhân viên này đã nghỉ việc. bạn không thể thực hiện cấp chính sách hệ thống cho nhân viên này");
                }
            }
        }

        private void btnBanGiaoThietBi_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();
                string _trangThai = drow["TrangThai"].ToString();
                if (_trangThai == "True")
                {
                    Forms.frmCVBanGiaoThietBi frm = new frmCVBanGiaoThietBi(_value, _name);
                    frm.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Nhân viên này đã nghỉ việc. bạn không thể thực hiện bàn giao máy cho nhân viên");
                }
            }
        }

        private void btnBanGiaoLinhKien_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();
                string _trangThai = drow["TrangThai"].ToString();
                if (_trangThai == "True")
                {
                    Forms.frmCVBanGiaoLinhKien frm = new frmCVBanGiaoLinhKien(_value, _name);
                    frm.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Nhân viên này đã nghỉ việc. bạn không thể thực hiện bàn giao máy cho nhân viên");
                }
            }
        }

        private void frmNVQuanLyNhanVien_KeyDown(object sender, KeyEventArgs e)
        {
                          
                if (e.KeyCode.Equals(Keys.F2))//= phím F2
                {
                    btnXoaNV_Click(null, null);
                }
                if (e.KeyCode.Equals(Keys.F3))//= phím F3
                {
                    btnNghiViec_Click(null, null);
                }
                if (e.KeyCode.Equals(Keys.F4))//= phím F4
                {
                    btnThuyenChuyen_Click(null, null);
                }
                if (e.KeyCode.Equals(Keys.F5))//= phím F5
                {
                    btnBanGiaoThietBi_Click(null, null);
                }
                if (e.KeyCode.Equals(Keys.F6))//= phím F6
                {
                    btnBanGiaoLinhKien_Click(null, null);
                }
                if (e.KeyCode.Equals(Keys.F7))//= phím F7
                {
                    btnChinhSachHeThong_Click(null, null);
                }
                if (e.KeyCode.Equals(Keys.F8))//= phím F8
                {
                    btnCapCodeDienThoai_Click(null, null);
                }
                if (e.KeyCode.Equals(Keys.F9))//= phím F9
                {
                    btnLapPhieuYCIT_Click(null, null);
                }
                if (e.KeyCode.Equals(Keys.F10))//= phím F10
                {
                    btnLapPhieuSuaChua_Click(null, null);
                }
            
        }

        private void btnLapPhieuYCIT_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();
                string _trangThai = drow["TrangThai"].ToString();
                if (_trangThai == "True")
                {
                    frmCVLapPhieuYeuCau frm = new frmCVLapPhieuYeuCau(_value);
                    frm.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Nhân viên này đã nghỉ việc. bạn không thể thực hiện Lập phiếu Yêu cầu");
                }
              
            }
        }

        private void btnLapPhieuSuaChua_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();
                string _trangThai = drow["TrangThai"].ToString();
                if (_trangThai == "True")
                {
                    frmCVLapPhieuYCSuaChua frm = new frmCVLapPhieuYCSuaChua(_value);
                    frm.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Nhân viên này đã nghỉ việc. bạn không thể thực hiện Lập phiếu Yêu cầu sửa chữa");
                }

            }
        }

        private void menuXoaNV_Click(object sender, EventArgs e)
        {
            btnXoaNV_Click(null, null);
        }

        private void mnubtnCapnhatTongDai_Click(object sender, EventArgs e)
        {
            int SelectedRow = gridDanhSachNhanVien.FocusedRowHandle;
            if (SelectedRow >= 0)
            {
                DataRow drow = gridDanhSachNhanVien.GetDataRow(SelectedRow);
                string _value = drow["MaNV"].ToString();
                string _name = drow["TenNV"].ToString();               
                string _trangThai = drow["TrangThai"].ToString();
                if (_trangThai == "True")
                {
                    frmCVKichHoatTongDai frm = new frmCVKichHoatTongDai(_value);
                    frm.ShowDialog();
                }
                else
                {
                    MessageBox.Show("Nhân viên này đã nghỉ việc. bạn không thể thực hiện Lập phiếu Yêu cầu cập nhật tổng đài");
                }

            }
        }

    }
}